package com.chub.study.modules.service.impl;

import com.alibaba.fastjson2.JSONObject;
import com.chub.RespResult;
import com.chub.study.modules.entity.TDictInfo;
import com.chub.study.modules.service.FileParser;
import com.chub.study.modules.service.TDictInfoService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * @author : chub
 * @version : V1.0.0
 * @fileName : FileParserDict.java
 * @description : 数据字典数据文件处理类
 * @createTime : 2024-08-01 17:50
 */
@Log4j2
@Service(value = "fileParserDict")
// @Component(value = "fileParserDict")
public class FileParserDict extends FileParser {

    @Resource
    private TDictInfoService tDictInfoService;

    /**
     * @description : 获取类的字段名称
     *
     * @param  :
     * @return : String
     */
    @Override
    public String getCloumnName() {
        return  "CITY_ID," 	    + 	// 行政区ID
                "CITY_LVL," 	+ 	// 级别（字典）
                "CITY_NAME,"    + 	// 行政区名称
                "PARENT_ID,"    + 	// 上级id
                "IS_CHILD," 	+ 	// 是否叶子节点（0-否，1-是）
                "CRT_USER," 	+ 	// 创建人
                "CRT_TIME," 	+ 	// 创建时间
                "UPT_USER," 	+ 	// 更新人
                "UPT_TIME," 	+ 	// 更新时间
                "DEL_FLAG," 	+ 	// 删除标识（0-未删除，1-删除）
                "TRAN_DATE,"    + 	// 交易日期
                "TRAN_TIME,"    + 	// 交易时间
                "OP_TIME"; 	 	    // 操作时间戳;
    }

    /**
     * @description : 字典表数据文件处理方法
     *
     * @param  : reqJson
     * @return : RespResult<String>
     * @author : chub
     * @date   : 2024-08-01 20:23
     */
    @Override
    public RespResult<String> handle(JSONObject reqJson) {
        log.info("数据字典数据文件：开始执行解析任务：{}", reqJson.toJSONString());
        List<TDictInfo> dictInfoList = new ArrayList<>();

        // 这里需要解析文件后，将数据放到dictInfoList内 TODO

        // boolean saveFlag = tDictInfoService.saveOrUpdateBatch(dictInfoList, 200);
        boolean saveFlag = true;
        if (saveFlag) {
            return RespResult.success("导入成功");
        }

        return RespResult.error("导入失败");
    }
}
